﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml.Linq;

namespace TMS
{
    public class Modulo
    {
        #region ATRIBUTOS

        private long _Id;
        private string _Tipo;
        private string _Nombre;
        private string _Descripcion;
        private Aplicacion _Aplicacion;
        private Developer _Developer;

        #endregion

        #region PROPERTIES

        public long Id
        {
            get { return _Id; }
            set { _Id = value; }
        }
        public string Tipo
        {
            get { return _Tipo; }
            set { _Tipo = value; }
        }
        public string Nombre
        {
            get { return _Nombre; }
            set { _Nombre = value; }
        }
        public string Descripcion
        {
            get { return _Descripcion; }
            set { _Descripcion = value; }
        }
        public Aplicacion Aplicacion
        {
            get { return _Aplicacion; }
            set { _Aplicacion = value; }
        }
        public Developer Developer
        {
            get { return _Developer; }
            set { _Developer = value; }
        }
        #endregion

        #region CONSTRUCTORES

        public Modulo(long pId, string pTipo, string pNombre, string pDescripcion, Aplicacion pAplicacion, Developer pDeveloper)
        {
            _Id = pId;
            _Tipo = pTipo;
            _Nombre = pNombre;
            _Descripcion = pDescripcion;
            _Aplicacion = pAplicacion;
            _Developer = pDeveloper;
        }
        public Modulo()
        { }

        #endregion

        #region METODOS

        public void newModulo()
        {
            ModuloXMLManager.getInstancia().addModulo(this);
        }
        public void updateModulo()
        {
            ModuloXMLManager.getInstancia().updateModulo(this);
        }
        public static void removeModulo(long pId)
        {
            ModuloXMLManager.getInstancia().removeModulo(pId);
        }
        public static long getUltimoId()
        {
            return ModuloXMLManager.getInstancia().getUltimoId();
        }
        public static Modulo getModuloById(long moId)
        {
            return ModuloXMLManager.getInstancia().getModuloById(moId);
        }
        public static List<Modulo> getListModulosByAppId(long appId)
        {
            return ModuloXMLManager.getInstancia().getModulosByApp(appId);
        }
        public static bool existeMod(string pNom)
        {
            return ModuloXMLManager.getInstancia().existeModulo(pNom);
        }
        public override string ToString()
        {
            return "Nombre: " + _Nombre + ", Tipo: " + _Tipo + ", Descripcion " + _Descripcion;
        }
        #endregion
    }
}